#ifndef ISTATUSUPDATER_H
#define ISTATUSUPDATER_H

#include <QFileInfo>
#include <QObject>

class IStatusUpdater : public QObject
{
    Q_OBJECT

public:
    //
    // lifetime managment
    //
    IStatusUpdater(QObject * parent = NULL);
    virtual ~IStatusUpdater() = 0;

    //
    // public operators
    //
    virtual void updateGeneratorStatus(bool manualTrigger = true) = 0;
    virtual void setIndefiniteProgress(bool indefinite) = 0;
    virtual void setPhases(int phases) = 0;
    virtual void reset() = 0;

    virtual int maximumProgress() = 0;
    virtual int currentProgress() = 0;
    virtual QString statusText() = 0;
    virtual int logSize() = 0;
    virtual QFileInfo pkgFileInfo() = 0;

signals:
    void updated();
    void finished(bool success);
};

#endif // ISTATUSUPDATER_H
